   1              		.syntax unified
   2              		.cpu cortex-m3
   3              		.fpu softvfp
   4              		.eabi_attribute 20, 1
   5              		.eabi_attribute 21, 1
   6              		.eabi_attribute 23, 3
   7              		.eabi_attribute 24, 1
   8              		.eabi_attribute 25, 1
   9              		.eabi_attribute 26, 1
  10              		.eabi_attribute 30, 4
  11              		.eabi_attribute 34, 1
  12              		.eabi_attribute 18, 4
  13              		.thumb
  14              		.syntax unified
  15              		.file	"main.c"
  16              		.text
  17              	.Ltext0:
  18              		.cfi_sections	.debug_frame
  19              		.section	.text.showVicError,"ax",%progbits
  20              		.align	1
  21              		.global	showVicError
  22              		.thumb
  23              		.thumb_func
  25              	showVicError:
  26              	.LFB0:
  27              		.file 1 "main.c"
   1:main.c        **** #include "vic.h"
   2:main.c        **** #include "app.h"
   3:main.c        **** #include "uart0_irq.h"
   4:main.c        **** 
   5:main.c        **** void showVicError(int n) {
  28              		.loc 1 5 0
  29              		.cfi_startproc
  30              		@ Volatile: function does not return.
  31              		@ args = 0, pretend = 0, frame = 0
  32              		@ frame_needed = 0, uses_anonymous_args = 0
  33              	.LVL0:
  34 0000 0446     		mov	r4, r0
  35 0002 2DE98848 		push	{r3, r7, fp, lr}
  36              	.LCFI0:
  37              		.cfi_def_cfa_offset 16
  38              		.cfi_offset 3, -16
  39              		.cfi_offset 7, -12
  40              		.cfi_offset 11, -8
  41              		.cfi_offset 14, -4
   6:main.c        **** 	par_ValuesDefaults();
  42              		.loc 1 6 0
  43 0006 FFF7FEFF 		bl	par_ValuesDefaults
  44              	.LVL1:
   7:main.c        **** 	flash_Save();
  45              		.loc 1 7 0
  46 000a FFF7FEFF 		bl	flash_Save
  47              	.LVL2:
   8:main.c        **** 	flash_SaveLogError(control.ticks, n);
  48              		.loc 1 8 0
  49 000e 274B     		ldr	r3, .L16
  50 0010 E1B2     		uxtb	r1, r4
  51 0012 1868     		ldr	r0, [r3]
  52 0014 FFF7FEFF 		bl	flash_SaveLogError
  53              	.LVL3:
   9:main.c        **** 
  10:main.c        **** 	// Filtra erro para exibição para usuário via led erro
  11:main.c        **** 	if (n < 100) n = 1; 					// erro de sistema
  54              		.loc 1 11 0
  55 0018 632C     		cmp	r4, #99
  56 001a 10DD     		ble	.L6
  12:main.c        **** 	else if (n==errCRC_FLASH) n=2;			// erro CRC da flash parametros
  57              		.loc 1 12 0
  58 001c 642C     		cmp	r4, #100
  59 001e 10D0     		beq	.L7
  13:main.c        **** 	else if (n==errSERVO_PAR_OFFSET) n=3;
  60              		.loc 1 13 0
  61 0020 652C     		cmp	r4, #101
  62 0022 10D0     		beq	.L8
  14:main.c        **** 	else if (n==errSERVO_PAR_INIT) n=4;
  63              		.loc 1 14 0
  64 0024 662C     		cmp	r4, #102
  65 0026 10D0     		beq	.L9
  15:main.c        **** 	else if (n==errSERVO_PAR_MIM) n=5;
  66              		.loc 1 15 0
  67 0028 672C     		cmp	r4, #103
  68 002a 10D0     		beq	.L10
  16:main.c        **** 	else if (n==errSERVO_PAR_MAX) n=6;
  69              		.loc 1 16 0
  70 002c 682C     		cmp	r4, #104
  71 002e 10D0     		beq	.L11
  17:main.c        **** 	else if (n==errSERVO_PAR_TIME_PROGRESS) n=7;
  72              		.loc 1 17 0
  73 0030 692C     		cmp	r4, #105
  74 0032 10D0     		beq	.L12
  18:main.c        **** 	else if (n==errSERVO_PAR_TIME_OFF) n=8;
  19:main.c        **** 	else n=9; // Demais erros
  75              		.loc 1 19 0
  76 0034 6A2C     		cmp	r4, #106
  77 0036 0CBF     		ite	eq
  78 0038 0824     		moveq	r4, #8
  79              	.LVL4:
  80 003a 0924     		movne	r4, #9
  81 003c 0CE0     		b	.L2
  82              	.LVL5:
  83              	.L6:
  11:main.c        **** 	else if (n==errCRC_FLASH) n=2;			// erro CRC da flash parametros
  84              		.loc 1 11 0
  85 003e 0124     		movs	r4, #1
  86              	.LVL6:
  87 0040 0AE0     		b	.L2
  88              	.LVL7:
  89              	.L7:
  12:main.c        **** 	else if (n==errSERVO_PAR_OFFSET) n=3;
  90              		.loc 1 12 0
  91 0042 0224     		movs	r4, #2
  92              	.LVL8:
  93 0044 08E0     		b	.L2
  94              	.LVL9:
  95              	.L8:
  13:main.c        **** 	else if (n==errSERVO_PAR_INIT) n=4;
  96              		.loc 1 13 0
  97 0046 0324     		movs	r4, #3
  98              	.LVL10:
  99 0048 06E0     		b	.L2
 100              	.LVL11:
 101              	.L9:
  14:main.c        **** 	else if (n==errSERVO_PAR_MIM) n=5;
 102              		.loc 1 14 0
 103 004a 0424     		movs	r4, #4
 104              	.LVL12:
 105 004c 04E0     		b	.L2
 106              	.LVL13:
 107              	.L10:
  15:main.c        **** 	else if (n==errSERVO_PAR_MAX) n=6;
 108              		.loc 1 15 0
 109 004e 0524     		movs	r4, #5
 110              	.LVL14:
 111 0050 02E0     		b	.L2
 112              	.LVL15:
 113              	.L11:
  16:main.c        **** 	else if (n==errSERVO_PAR_TIME_PROGRESS) n=7;
 114              		.loc 1 16 0
 115 0052 0624     		movs	r4, #6
 116              	.LVL16:
 117 0054 00E0     		b	.L2
 118              	.LVL17:
 119              	.L12:
  17:main.c        **** 	else if (n==errSERVO_PAR_TIME_OFF) n=8;
 120              		.loc 1 17 0
 121 0056 0724     		movs	r4, #7
 122              	.LVL18:
 123              	.L2:
  20:main.c        **** 
  21:main.c        **** 	irq_Disable();
 124              		.loc 1 21 0
 125              		.syntax unified
 126              	@ 21 "main.c" 1
 127 0058 72B6     		cpsid i
 128              	@ 0 "" 2
  22:main.c        **** 
  23:main.c        **** 	static int x;
  24:main.c        **** 	while(1) {
  25:main.c        **** 		for (x=0;x<n;x++) {
 129              		.loc 1 25 0
 130              		.thumb
 131              		.syntax unified
 132 005a 154D     		ldr	r5, .L16+4
  26:main.c        **** 			ledERROR_On();	buzzer_On();	delay_ms(250);
 133              		.loc 1 26 0
 134 005c DFF86090 		ldr	r9, .L16+20
  25:main.c        **** 			ledERROR_On();	buzzer_On();	delay_ms(250);
 135              		.loc 1 25 0
 136 0060 4FF00008 		mov	r8, #0
 137              	.L5:
 138 0064 DFF848A0 		ldr	r10, .L16+4
 139              		.loc 1 26 0
 140 0068 DFF858B0 		ldr	fp, .L16+24
  25:main.c        **** 			ledERROR_On();	buzzer_On();	delay_ms(250);
 141              		.loc 1 25 0
 142 006c C5F80080 		str	r8, [r5]
 143              	.L3:
  25:main.c        **** 			ledERROR_On();	buzzer_On();	delay_ms(250);
 144              		.loc 1 25 0 is_stmt 0 discriminator 1
 145 0070 DAF80030 		ldr	r3, [r10]
 146 0074 9C42     		cmp	r4, r3
 147 0076 15DD     		ble	.L15
 148              		.loc 1 26 0 is_stmt 1 discriminator 3
 149 0078 4FF00057 		mov	r7, #536870912
 150 007c 4FF48006 		mov	r6, #4194304
 151 0080 C9F80070 		str	r7, [r9]
 152 0084 0B48     		ldr	r0, .L16+8
 153 0086 CBF80060 		str	r6, [fp]
 154 008a FFF7FEFF 		bl	delay
 155              	.LVL19:
  27:main.c        **** 			ledERROR_Off();	buzzer_Off();	delay_ms(250);
 156              		.loc 1 27 0 discriminator 3
 157 008e 0A4B     		ldr	r3, .L16+12
 158 0090 0848     		ldr	r0, .L16+8
 159 0092 1F60     		str	r7, [r3]
 160 0094 43F8806C 		str	r6, [r3, #-128]
 161 0098 FFF7FEFF 		bl	delay
 162              	.LVL20:
  25:main.c        **** 			ledERROR_On();	buzzer_On();	delay_ms(250);
 163              		.loc 1 25 0 discriminator 3
 164 009c 2B68     		ldr	r3, [r5]
 165 009e 0133     		adds	r3, r3, #1
 166 00a0 2B60     		str	r3, [r5]
 167 00a2 E5E7     		b	.L3
 168              	.L15:
  28:main.c        **** 		}
  29:main.c        **** 		delay_ms(1000);
 169              		.loc 1 29 0
 170 00a4 0548     		ldr	r0, .L16+16
 171 00a6 FFF7FEFF 		bl	delay
 172              	.LVL21:
  30:main.c        **** 	}
 173              		.loc 1 30 0
 174 00aa DBE7     		b	.L5
 175              	.L17:
 176              		.align	2
 177              	.L16:
 178 00ac 00000000 		.word	control
 179 00b0 00000000 		.word	.LANCHOR0
 180 00b4 C8267F00 		.word	8333000
 181 00b8 9CC00920 		.word	537510044
 182 00bc 089FFC01 		.word	33333000
 183 00c0 98C00920 		.word	537510040
 184 00c4 18C00920 		.word	537509912
 185              		.cfi_endproc
 186              	.LFE0:
 188              		.section	.text.startup.main,"ax",%progbits
 189              		.align	1
 190              		.global	main
 191              		.thumb
 192              		.thumb_func
 194              	main:
 195              	.LFB1:
  31:main.c        **** }
  32:main.c        **** 
  33:main.c        **** int main(void) {
 196              		.loc 1 33 0
 197              		.cfi_startproc
 198              		@ Volatile: function does not return.
 199              		@ args = 0, pretend = 0, frame = 0
 200              		@ frame_needed = 0, uses_anonymous_args = 0
 201 0000 08B5     		push	{r3, lr}
 202              	.LCFI1:
 203              		.cfi_def_cfa_offset 8
 204              		.cfi_offset 3, -8
 205              		.cfi_offset 14, -4
  34:main.c        **** 	nvic_SetIntHandler(showVicError);
 206              		.loc 1 34 0
 207 0002 2548     		ldr	r0, .L20
 208 0004 FFF7FEFF 		bl	nvic_SetIntHandler
 209              	.LVL22:
  35:main.c        **** 
  36:main.c        **** 	// NÃO USAR UART COM INTERRUPÇÃO PARA O LOG, POIS CONSTANTEMENTE A
  37:main.c        ****   	// POSIÇÃO DOS VETORES DE INTERRUPÇÕES COM O USO DO BOOTLOADER
  38:main.c        **** 
  39:main.c        ****   	// REGISTRANDO AS ENTRADAS E SAÍDAS PADRÃO AOS SEUS RESPECTIVOS DISPOSTIVOS
  40:main.c        **** 	// PORTA PARA CLI DEVE SER COM INTERRUPÇÃO
  41:main.c        ****   	lgetchar_RegisterDev(uart0_GetChar);
 210              		.loc 1 41 0
 211 0008 2448     		ldr	r0, .L20+4
 212 000a FFF7FEFF 		bl	lgetchar_RegisterDev
 213              	.LVL23:
  42:main.c        **** 	lputchar_RegisterDev(uart0_PutChar);
 214              		.loc 1 42 0
 215 000e 2448     		ldr	r0, .L20+8
 216 0010 FFF7FEFF 		bl	lputchar_RegisterDev
 217              	.LVL24:
  43:main.c        **** 	ldebug_RegisterDev(uart0_BasicPutChar);
 218              		.loc 1 43 0
 219 0014 2348     		ldr	r0, .L20+12
 220 0016 FFF7FEFF 		bl	ldebug_RegisterDev
 221              	.LVL25:
  44:main.c        **** 	uart0_Init(115200);
 222              		.loc 1 44 0
 223 001a 4FF4E130 		mov	r0, #115200
 224 001e FFF7FEFF 		bl	uart0_Init
 225              	.LVL26:
  45:main.c        **** 
  46:main.c        **** 	systime_Init();
 226              		.loc 1 46 0
 227 0022 FFF7FEFF 		bl	systime_Init
 228              	.LVL27:
  47:main.c        **** 	systime_SetIntHandler(app_Tick, 1); // Chamar o a função callsystem a cada 1ms OBS: Levando em con
 229              		.loc 1 47 0
 230 0026 0121     		movs	r1, #1
 231 0028 1F48     		ldr	r0, .L20+16
 232 002a FFF7FEFF 		bl	systime_SetIntHandler
 233              	.LVL28:
  48:main.c        **** 	ledError_Init();
 234              		.loc 1 48 0
 235 002e FFF7FEFF 		bl	ledError_Init
 236              	.LVL29:
  49:main.c        **** 	beep_Init();
 237              		.loc 1 49 0
 238 0032 FFF7FEFF 		bl	beep_Init
 239              	.LVL30:
  50:main.c        **** 	gKey_Init(onKeyDown, &onKeyPress, &onKeyUp);	// Anexar os eventos do teclado
 240              		.loc 1 50 0
 241 0036 1D4A     		ldr	r2, .L20+20
 242 0038 1D49     		ldr	r1, .L20+24
 243 003a 1E48     		ldr	r0, .L20+28
 244 003c FFF7FEFF 		bl	gKey_Init
 245              	.LVL31:
  51:main.c        **** 	servo_Init();
 246              		.loc 1 51 0
 247 0040 FFF7FEFF 		bl	servo_Init
 248              	.LVL32:
  52:main.c        **** 	lcd_Init(16, 2, LCD_5x8DOTS);
 249              		.loc 1 52 0
 250 0044 0022     		movs	r2, #0
 251 0046 0221     		movs	r1, #2
 252 0048 1020     		movs	r0, #16
 253 004a FFF7FEFF 		bl	lcd_Init
 254              	.LVL33:
  53:main.c        **** 	lcd_printfInit(16, STDIO_DEV1);
 255              		.loc 1 53 0
 256 004e 0421     		movs	r1, #4
 257 0050 1020     		movs	r0, #16
 258 0052 FFF7FEFF 		bl	lcd_printfInit
 259              	.LVL34:
  54:main.c        **** 	servus_Init(pdOFF);
 260              		.loc 1 54 0
 261 0056 0020     		movs	r0, #0
 262 0058 FFF7FEFF 		bl	servus_Init
 263              	.LVL35:
  55:main.c        **** 	ssp1_Init(SSP0_MASTER, SSP0_CPOL_H|SSP0_CPHA_H|SSP0_DSS_8); // inicar o barramento SPI a 400Khz
 264              		.loc 1 55 0
 265 005c C721     		movs	r1, #199
 266 005e 0020     		movs	r0, #0
 267 0060 FFF7FEFF 		bl	ssp1_Init
 268              	.LVL36:
  56:main.c        **** 	joy_Init();
 269              		.loc 1 56 0
 270 0064 FFF7FEFF 		bl	joy_Init
 271              	.LVL37:
  57:main.c        **** 
  58:main.c        **** 	irq_Enable(); 	// Habilitar interrupções
 272              		.loc 1 58 0
 273              		.syntax unified
 274              	@ 58 "main.c" 1
 275 0068 62B6     		cpsie i
 276              	@ 0 "" 2
  59:main.c        **** 	app_Init();
 277              		.loc 1 59 0
 278              		.thumb
 279              		.syntax unified
 280 006a FFF7FEFF 		bl	app_Init
 281              	.LVL38:
  60:main.c        **** 
  61:main.c        **** 	lprintf(CMD_TERMINATOR);
 282              		.loc 1 61 0
 283 006e 1249     		ldr	r1, .L20+32
 284 0070 0120     		movs	r0, #1
 285 0072 FFF7FEFF 		bl	rprintf
 286              	.LVL39:
  62:main.c        **** 	lprintf(PROGAM_NAME);
 287              		.loc 1 62 0
 288 0076 1149     		ldr	r1, .L20+36
 289 0078 0120     		movs	r0, #1
 290 007a FFF7FEFF 		bl	rprintf
 291              	.LVL40:
  63:main.c        **** 	lprintf("ucLibc version "__VERSION CMD_TERMINATOR);
 292              		.loc 1 63 0
 293 007e 1049     		ldr	r1, .L20+40
 294 0080 0120     		movs	r0, #1
 295 0082 FFF7FEFF 		bl	rprintf
 296              	.LVL41:
  64:main.c        **** 
  65:main.c        **** 	while (1) {
  66:main.c        **** 		prompt_Process();
  67:main.c        **** 		app_Process();
  68:main.c        **** 		gKey_Process(control.key); // se há tecla pressiona o processo vai chamar os onKeyXXXX
 297              		.loc 1 68 0
 298 0086 0F4C     		ldr	r4, .L20+44
 299              	.L19:
  66:main.c        **** 		app_Process();
 300              		.loc 1 66 0 discriminator 1
 301 0088 FFF7FEFF 		bl	prompt_Process
 302              	.LVL42:
  67:main.c        **** 		gKey_Process(control.key); // se há tecla pressiona o processo vai chamar os onKeyXXXX
 303              		.loc 1 67 0 discriminator 1
 304 008c FFF7FEFF 		bl	app_Process
 305              	.LVL43:
 306              		.loc 1 68 0 discriminator 1
 307 0090 2079     		ldrb	r0, [r4, #4]	@ zero_extendqisi2
 308 0092 FFF7FEFF 		bl	gKey_Process
 309              	.LVL44:
 310 0096 F7E7     		b	.L19
 311              	.L21:
 312              		.align	2
 313              	.L20:
 314 0098 00000000 		.word	showVicError
 315 009c 00000000 		.word	uart0_GetChar
 316 00a0 00000000 		.word	uart0_PutChar
 317 00a4 00000000 		.word	uart0_BasicPutChar
 318 00a8 00000000 		.word	app_Tick
 319 00ac 00000000 		.word	onKeyUp
 320 00b0 00000000 		.word	onKeyPress
 321 00b4 00000000 		.word	onKeyDown
 322 00b8 00000000 		.word	.LC0
 323 00bc 02000000 		.word	.LC1
 324 00c0 42000000 		.word	.LC2
 325 00c4 00000000 		.word	control
 326              		.cfi_endproc
 327              	.LFE1:
 329              		.comm	control,424,4
 330              		.section	.bss.x.5068,"aw",%nobits
 331              		.align	2
 332              		.set	.LANCHOR0,. + 0
 335              	x.5068:
 336 0000 00000000 		.space	4
 337              		.section	.rodata.str1.1,"aMS",%progbits,1
 338              	.LC0:
 339 0000 0A00     		.ascii	"\012\000"
 340              	.LC1:
 341 0002 6578616D 		.ascii	"examples hr01 firmware v1.0 [compiled in Jun 17 201"
 341      706C6573 
 341      20687230 
 341      31206669 
 341      726D7761 
 342 0035 37203038 		.ascii	"7 08:48:20]\012\000"
 342      3A34383A 
 342      32305D0A 
 342      00
 343              	.LC2:
 344 0042 75634C69 		.ascii	"ucLibc version 2.8\012\000"
 344      62632076 
 344      65727369 
 344      6F6E2032 
 344      2E380A00 
 345              		.text
 346              	.Letext0:
 347              		.file 2 "uc_libc_dev/_libdef/uc_libdefs.h"
 348              		.file 3 "app.h"
 349              		.file 4 "uc_libc_dev/_arch/arm_lpc/timer/delay.h"
 350              		.file 5 "uc_libc_dev/_arch/arm_lpc/common/vic_cortexm3.h"
 351              		.file 6 "uc_libc_dev/stdio/stdio_uc.h"
 352              		.file 7 "uc_libc_dev/_arch/arm_lpc/uart/uart0_irq.h"
 353              		.file 8 "uc_libc_dev/_arch/arm_lpc/timer/systick.h"
 354              		.file 9 "uc_libc_dev/misc/led_error.h"
 355              		.file 10 "uc_libc_dev/sound/beep/beep.h"
 356              		.file 11 "uc_libc_dev/keyboard/gkey.h"
 357              		.file 12 "uc_libc_dev/display/liquid_crystal.h"
 358              		.file 13 "uc_libc_dev/motors/servus.h"
 359              		.file 14 "uc_libc_dev/_arch/arm_lpc/spi/ssp1.h"
 360              		.file 15 "uc_libc_dev/sensor/joyps.h"
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
D:\_temp\_windows\ccEsHz55.s:20     .text.showVicError:00000000 $t
D:\_temp\_windows\ccEsHz55.s:25     .text.showVicError:00000000 showVicError
D:\_temp\_windows\ccEsHz55.s:178    .text.showVicError:000000ac $d
                            *COM*:000001a8 control
D:\_temp\_windows\ccEsHz55.s:189    .text.startup.main:00000000 $t
D:\_temp\_windows\ccEsHz55.s:194    .text.startup.main:00000000 main
D:\_temp\_windows\ccEsHz55.s:314    .text.startup.main:00000098 $d
D:\_temp\_windows\ccEsHz55.s:331    .bss.x.5068:00000000 $d
D:\_temp\_windows\ccEsHz55.s:335    .bss.x.5068:00000000 x.5068
                     .debug_frame:00000010 $d

UNDEFINED SYMBOLS
par_ValuesDefaults
flash_Save
flash_SaveLogError
delay
nvic_SetIntHandler
lgetchar_RegisterDev
lputchar_RegisterDev
ldebug_RegisterDev
uart0_Init
systime_Init
systime_SetIntHandler
ledError_Init
beep_Init
gKey_Init
servo_Init
lcd_Init
lcd_printfInit
servus_Init
ssp1_Init
joy_Init
app_Init
rprintf
prompt_Process
app_Process
gKey_Process
uart0_GetChar
uart0_PutChar
uart0_BasicPutChar
app_Tick
onKeyUp
onKeyPress
onKeyDown
